home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / lang / SmallEiffel.lha / SmallEiffel / bin_c / compile_to_c44.c < prev    next >
C/C++ Source or Header  |  1998-12-22  |  31KB  |  1,353 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_c.h"
  9.  
  10.  
  11. void r128check_comparison(T128* C,T0* a1){
  12. T0* _at=NULL;
  13. T0* _tt=NULL;
  14. /*[IF*/
  15. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  16. _tt=X54run_type(X56result_type((C)->_target/*4*/));
  17. _at=X54run_type(X56result_type(r128arg1(C)));
  18. /*[IF*/
  19. if(X54is_none(_tt)){
  20. /*[IF*/
  21. if(X54is_expanded(_at)){
  22. X54used_as_reference(_at);
  23. }
  24. /*FI]*/
  25. }
  26.  else if(X54is_none(_at)){
  27. /*[IF*/
  28. if(X54is_expanded(_tt)){
  29. X54used_as_reference(_tt);
  30. }
  31. /*FI]*/
  32. }
  33.  else if(X54is_reference(_tt)){
  34. /*[IF*/
  35. if(X54is_reference(_at)){
  36. /*[IF*/
  37. if(X54is_a(_tt,_at)){
  38. }
  39. else{
  40. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  41. /*]*/
  42. /*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
  43. /*]*/
  44. /*]*/
  45. /*[IF*/
  46. if(X54is_a(_at,_tt)){
  47. }
  48. else{
  49. r128error_comparison(C,((T0*)ms129_46246),a1);
  50. }
  51. /*FI]*/
  52. }
  53. /*FI]*/
  54. }
  55.  else if(!(X54is_a(_at,_tt))){
  56. r128error_comparison(C,((T0*)ms129_41670),a1);
  57. }
  58. else{
  59. X54used_as_reference(_at);
  60. }
  61. /*FI]*/
  62. }
  63. else{
  64. /*[IF*/
  65. if(X54is_expanded(_at)){
  66. /*[IF*/
  67. if(X54is_basic_eiffel_expanded(_at)){
  68. /*[IF*/
  69. if(X54is_a(_tt,_at)){
  70. }
  71. else{
  72. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  73. /*]*/
  74. /*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
  75. /*]*/
  76. /*]*/
  77. /*[IF*/
  78. if(X54is_a(_at,_tt)){
  79. }
  80. else{
  81. r128error_comparison(C,((T0*)ms129_37791),a1);
  82. }
  83. /*FI]*/
  84. }
  85. /*FI]*/
  86. }
  87.  else if(X54is_bit(_tt)){
  88. r128bit_limitation(C,_tt,_at);
  89. }
  90.  else if(!(X54is_a(_at,_tt))){
  91. r128error_comparison(C,((T0*)ms129_37791a),a1);
  92. }
  93. /*FI]*/
  94. }
  95.  else if(!(X54is_a(_tt,_at))){
  96. r128error_comparison(C,((T0*)ms129_42138),a1);
  97. }
  98. else{
  99. X54used_as_reference(_tt);
  100. }
  101. /*FI]*/
  102. }
  103. /*FI]*/
  104. }
  105. /*FI]*/
  106. }
  107. /*No:CALL_INFIX_NEQ.us_neq*/
  108. /*No:CALL_INFIX_NEQ.is_result*/
  109. /*No:CALL_INFIX_NEQ.fatal_error*/
  110.  
  111.  
  112. void r128mapping_c_target(T128* C,T0* a1){
  113. T0* _actual_type=NULL;
  114. T6 _flag=0;
  115. _flag=r25call_invariant_start(a1);
  116. _actual_type=X54run_type(/*(IRF4.8result_type*/r128type_boolean()/*)*/);
  117. /*[IF*/
  118. if(X54is_reference(_actual_type)){
  119. /*[IF*/
  120. if(X54is_reference(a1)){
  121. X54mapping_cast(a1);
  122. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  123. T3 b1='\50';
  124. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  125. }/*]*/
  126. /*]*/
  127. r128compile_to_c(C);
  128. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  129. T3 b1='\51';
  130. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  131. }/*]*/
  132. /*]*/
  133. }
  134. else{
  135. X54to_expanded(_actual_type);
  136. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  137. T3 b1='\50';
  138. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  139. }/*]*/
  140. /*]*/
  141. r128compile_to_c(C);
  142. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  143. T3 b1='\51';
  144. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  145. }/*]*/
  146. /*]*/
  147. }
  148. /*FI]*/
  149. }
  150. else{
  151. /*[IF*/
  152. if(X54is_reference(a1)){
  153. X54to_reference(_actual_type);
  154. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  155. T3 b1='\50';
  156. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  157. }/*]*/
  158. /*]*/
  159. r128compile_to_c(C);
  160. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  161. T3 b1='\51';
  162. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  163. }/*]*/
  164. /*]*/
  165. }
  166. else{
  167. /*[IF*/
  168. if(X54need_c_struct(a1)){
  169. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  170. T3 b1='\46';
  171. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  172. }/*]*/
  173. /*]*/
  174. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  175. T3 b1='\50';
  176. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  177. }/*]*/
  178. /*]*/
  179. r128compile_to_c(C);
  180. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  181. T3 b1='\51';
  182. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  183. }/*]*/
  184. /*]*/
  185. }
  186. else{
  187. r128compile_to_c(C);
  188. }
  189. /*FI]*/
  190. }
  191. /*FI]*/
  192. }
  193. /*FI]*/
  194. /*[IF*/
  195. if(_flag){
  196. /*[IRF3.2call_invariant_end*//*[IRF3.6put_character*/{T45* C1=(T45*)(oBC25out_c);
  197. T3 b1='\51';
  198. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  199. }/*]*/
  200. /*]*/
  201. }
  202. /*FI]*/
  203. }
  204. /*No:CALL_INFIX_NEQ.fz_cast_void_star*/
  205. /*No:CALL_INFIX_NEQ.arguments*/
  206.  
  207.  
  208. T0* r128runnable_expression(T0* a1,T0* a2){
  209. T0* R=NULL;
  210. R=X56to_runnable(a1,a2);
  211. /*[IF*/
  212. if((R)==((void*)(NULL))){
  213. r21add_position(X56start_position(a1));
  214. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms118_16515);
  215. r21fatal_error((T21*)(oBC12eh),b1);
  216. }/*]*/
  217. }
  218. /*FI]*/
  219. return R;
  220. }
  221.  
  222.  
  223. void r128c2c_exp_ref(T0* a1,T0* a2,T0* a3,T0* a4){
  224. /*[IF*/
  225. if(X56is_void(a3)){
  226. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_166a));
  227. /*]*/
  228. X56compile_to_c(a3);
  229. }
  230. else{
  231. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_166a));
  232. /*]*/
  233. X56compile_to_c(a1);
  234. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_393));
  235. /*]*/
  236. X56compile_to_c(a3);
  237. }
  238. /*FI]*/
  239. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms128_740));
  240. /*]*/
  241. }
  242. /*No:CALL_INFIX_NEQ.dca_inline_argument*/
  243.  
  244.  
  245. void r128compile_to_c(T128* C){
  246. T0* _at=NULL;
  247. T0* _tt=NULL;
  248. _tt=X54run_type(X56result_type((C)->_target/*4*/));
  249. _at=X54run_type(X56result_type(r128arg1(C)));
  250. /*[IF*/
  251. if(X54is_expanded(_tt)){
  252. /*[IF*/
  253. if(X54is_expanded(_at)){
  254. /*[IF*/
  255. if(X54is_user_expanded(_tt)){
  256. r128cmp_user_expanded(C,0,_tt);
  257. }
  258.  else if(X54is_basic_eiffel_expanded(_tt)){
  259. r128cmp_basic_eiffel_expanded(C,0,_at,_tt);
  260. }
  261.  else if(X54is_bit(_tt)){
  262. r128cmp_bit(C,0,_tt);
  263. }
  264. else{
  265. r128cmp_basic_ref(C,0);
  266. }
  267. /*FI]*/
  268. }
  269. else{
  270. r128c2c_exp_ref((C)->_target/*4*/,_tt,r128arg1(C),_at);
  271. }
  272. /*FI]*/
  273. }
  274.  else if(X54is_expanded(_at)){
  275. r128c2c_exp_ref(r128arg1(C),_at,(C)->_target/*4*/,_tt);
  276. }
  277. else{
  278. r128cmp_basic_ref(C,0);
  279. }
  280. /*FI]*/
  281. }
  282. /*No:CALL_INFIX_NEQ.isa_dca_inline_argument*/
  283. /*No:CALL_INFIX_NEQ.fz_dot*/
  284. /*No:CALL_INFIX_NEQ.target*/
  285.  
  286.  
  287. void r128error(T0* a1,T0* a2){
  288. r21add_position(a1);
  289. r21error((T21*)(oBC12eh),a2);
  290. }
  291.  
  292.  
  293. void r128make(T128* C,T0* a1,T0* a2,T0* a3){
  294. C->_target=a1;
  295. {T138*n=malloc(sizeof(*n));
  296. *n=M138;
  297. r138make(n,r128operator(),a2);
  298. C->_feature_name=(T0*)n;
  299. }
  300. {T149*n=malloc(sizeof(*n));
  301. *n=M149;
  302. /*[IRF3.3make_1*/((((T149*)(n)))->_first_one)=(a3);
  303. /*]*/
  304. C->_arguments=(T0*)n;
  305. }
  306. }
  307.  
  308.  
  309. void r128cmp_bit(T128* C,T6 a1,T0* a2){
  310. T0* _tb=NULL;
  311. _tb=a2;
  312. if(NULL!=(_tb))switch(((T0*)_tb)->id) {
  313. case 276: case 277: 
  314. break;
  315. default:
  316. _tb=NULL;
  317. };/*[IF*/
  318. if(X53is_c_unsigned_ptr(_tb)){
  319. /*[IF*/
  320. if(a1){
  321. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  322. T3 b1='\41';
  323. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  324. }/*]*/
  325. /*]*/
  326. }
  327. /*FI]*/
  328. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms129_6896));
  329. /*]*/
  330. X56mapping_c_arg((C)->_target/*4*/,a2);
  331. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_393));
  332. /*]*/
  333. X56mapping_c_arg(r128arg1(C),a2);
  334. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms129_176));
  335. /*]*/
  336. /*[IRF3.5put_integer*/r45put_integer(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),X53space_for_variable(_tb));
  337. /*]*/
  338. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms129_42));
  339. /*]*/
  340. }
  341. else{
  342. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  343. T3 b1='\50';
  344. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  345. }/*]*/
  346. /*]*/
  347. X56compile_to_c((C)->_target/*4*/);
  348. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  349. T3 b1='\51';
  350. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  351. }/*]*/
  352. /*]*/
  353. /*[IF*/
  354. if(a1){
  355. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_250));
  356. /*]*/
  357. }
  358. else{
  359. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_194a));
  360. /*]*/
  361. }
  362. /*FI]*/
  363. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  364. T3 b1='\50';
  365. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  366. }/*]*/
  367. /*]*/
  368. X56compile_to_c(r128arg1(C));
  369. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  370. T3 b1='\51';
  371. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  372. }/*]*/
  373. /*]*/
  374. }
  375. /*FI]*/
  376. }
  377. /*No:CALL_INFIX_NEQ.is_current*/
  378.  
  379.  
  380. T0* r128operator(void){
  381. T0* R=NULL;
  382. R=((T0*)ms14_222);
  383. return R;
  384. }
  385.  
  386.  
  387. void r128cmp_user_expanded(T128* C,T6 a1,T0* a2){
  388. T2 _mem_id=0;
  389. /*[IF*/
  390. if(X54is_dummy_expanded(a2)){
  391. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  392. T3 b1='\50';
  393. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  394. }/*]*/
  395. /*]*/
  396. X56compile_to_c((C)->_target/*4*/);
  397. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  398. T3 b1='\54';
  399. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  400. }/*]*/
  401. /*]*/
  402. X56compile_to_c(r128arg1(C));
  403. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  404. T3 b1='\54';
  405. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  406. }/*]*/
  407. /*]*/
  408. /*[IF*/
  409. if(a1){
  410. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  411. T3 b1='1';
  412. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  413. }/*]*/
  414. /*]*/
  415. }
  416. else{
  417. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  418. T3 b1='0';
  419. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  420. }/*]*/
  421. /*]*/
  422. }
  423. /*FI]*/
  424. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  425. T3 b1='\51';
  426. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  427. }/*]*/
  428. /*]*/
  429. }
  430. else{
  431. _mem_id=X54id(a2);
  432. /*[IF*/
  433. if(a1){
  434. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  435. T3 b1='\41';
  436. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  437. }/*]*/
  438. /*]*/
  439. }
  440. /*FI]*/
  441. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_7854));
  442. /*]*/
  443. /*[IRF3.5put_integer*/r45put_integer(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),_mem_id);
  444. /*]*/
  445. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_166a));
  446. /*]*/
  447. X56compile_to_c((C)->_target/*4*/);
  448. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_393));
  449. /*]*/
  450. X56compile_to_c(r128arg1(C));
  451. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_170));
  452. /*]*/
  453. }
  454. /*FI]*/
  455. }
  456.  
  457.  
  458. void r128afd_check(T128* C){
  459. X56afd_check((C)->_target/*4*/);
  460. X56afd_check(r128arg1(C));
  461. }
  462.  
  463.  
  464. T2 r128static_value(T128* C){
  465. T2 R=0;
  466. /*[IF*/
  467. if(X56is_void((C)->_target/*4*/)){
  468. R=r128static_neq_void(r128arg1(C));
  469. }
  470.  else if(X56is_void(r128arg1(C))){
  471. R=r128static_neq_void((C)->_target/*4*/);
  472. }
  473.  else if((X56is_static((C)->_target/*4*/))&&(X56is_static(r128arg1(C)))){
  474. /*[IF*/
  475. if((X56static_value((C)->_target/*4*/))!=(X56static_value(r128arg1(C)))){
  476. R=1;
  477. }
  478. /*FI]*/
  479. }
  480. /*FI]*/
  481. return R;
  482. }
  483. /*No:CALL_INFIX_NEQ.fz_se_cmpt*/
  484.  
  485.  
  486. void r128dca_inline(T128* C,T0* a1){
  487. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  488. T3 b1='\50';
  489. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  490. }/*]*/
  491. /*]*/
  492. r25put_target_as_value((T25*)(oBC12cpp));
  493. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  494. T3 b1='\51';
  495. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  496. }/*]*/
  497. /*]*/
  498. /*[IF*/
  499. if((/*(IRF4.5first*//*(IRF4.6item*/(((T7*)(r128operator()))->_storage/*0*/)[(1)-(1)]/*)*//*)*/)==('\75')){
  500. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_250));
  501. /*]*/
  502. }
  503. else{
  504. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_194a));
  505. /*]*/
  506. }
  507. /*FI]*/
  508. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  509. T3 b1='\50';
  510. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  511. }/*]*/
  512. /*]*/
  513. X56dca_inline_argument(r128arg1(C),a1);
  514. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  515. T3 b1='\51';
  516. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  517. }/*]*/
  518. /*]*/
  519. }
  520.  
  521.  
  522. T2 r128static_neq_void(T0* a1){
  523. T2 R=0;
  524. T0* _rt=NULL;
  525. /*[IF*/
  526. if(((X56is_current(a1))||(X56is_manifest_string(a1)))||(r128is_manifest_array(a1))){
  527. R=1;
  528. }
  529. else{
  530. _rt=X54run_type(X56result_type(a1));
  531. /*[IF*/
  532. if(X54is_expanded(_rt)){
  533. R=1;
  534. }
  535.  else if(X56is_static(a1)){
  536. /*[IF*/
  537. if((X56static_value(a1))!=(0)){
  538. R=1;
  539. }
  540. /*FI]*/
  541. }
  542. /*FI]*/
  543. }
  544. /*FI]*/
  545. return R;
  546. }
  547. /*No:CALL_INFIX_NEQ.fz_20*/
  548.  
  549.  
  550. void r128compile_to_c_old(T128* C){
  551. X56compile_to_c_old((C)->_target/*4*/);
  552. /*[IF*/
  553. {/*AT*/X149compile_to_c_old((C)->_arguments/*8*/);
  554. }
  555. /*FI]*/
  556. }
  557. /*No:CALL_INFIX_NEQ.is_pre_computable*/
  558. /*No:CALL_INFIX_NEQ.fz_bad_argument*/
  559.  
  560.  
  561. void r128collect_c_tmp(T128* C){
  562. /*[IF*/
  563. /*AF*//*AE*/
  564. /*FI]*/
  565. X56collect_c_tmp((C)->_target/*4*/);
  566. /*[IF*/
  567. if(((C)->_arguments/*8*/)!=((void*)(NULL))){
  568. X149collect_c_tmp((C)->_arguments/*8*/);
  569. }
  570. /*FI]*/
  571. }
  572. /*No:CALL_INFIX_NEQ.fz_iinaiv*/
  573. /*No:CALL_INFIX_NEQ.fz_13*/
  574. /*No:CALL_INFIX_NEQ.run_feature*/
  575.  
  576.  
  577. T0* r128runnable_args(T0* a1,T0* a2){
  578. T0* R=NULL;
  579. R=X149to_runnable(a1,a2);
  580. /*[IF*/
  581. if((R)==((void*)(NULL))){
  582. r21add_position(X149start_position(a1));
  583. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_13065);
  584. r21fatal_error((T21*)(oBC12eh),b1);
  585. }/*]*/
  586. }
  587. /*FI]*/
  588. return R;
  589. }
  590.  
  591.  
  592. T6 r128is_static_neq_void(T0* a1){
  593. T6 R=0;
  594. T0* _rt=NULL;
  595. /*[IF*/
  596. if(((X56is_current(a1))||(X56is_manifest_string(a1)))||(r128is_manifest_array(a1))){
  597. R=1;
  598. }
  599. else{
  600. _rt=X54run_type(X56result_type(a1));
  601. /*[IF*/
  602. if(X54is_expanded(_rt)){
  603. R=1;
  604. }
  605.  else if(X56is_static(a1)){
  606. R=1;
  607. }
  608. /*FI]*/
  609. }
  610. /*FI]*/
  611. return R;
  612. }
  613. /*No:CALL_INFIX_NEQ.fz_17*/
  614.  
  615.  
  616. void r128bit_limitation(T128* C,T0* a1,T0* a2){
  617. T0* _b2=NULL;
  618. T0* _b1=NULL;
  619. _b1=a1;
  620. if(NULL!=(_b1))switch(((T0*)_b1)->id) {
  621. case 276: case 277: 
  622. break;
  623. default:
  624. _b1=NULL;
  625. };_b2=a2;
  626. if(NULL!=(_b2))switch(((T0*)_b2)->id) {
  627. case 276: case 277: 
  628. break;
  629. default:
  630. _b2=NULL;
  631. };/*[IF*/
  632. if((X53nb(_b1))!=(X53nb(_b2))){
  633. r21add_position(((T138*)((C)->_feature_name/*12*/))->_start_position/*8*/);
  634. /*[IRF3.6append*/{T0* b1=((T0*)ms129_21261);
  635. r7append((T7*)(oBC21explanation),b1);
  636. }/*]*/
  637. r21add_type(_b1,((T0*)ms129_1930));
  638. r21add_type(_b2,((T0*)ms129_383757));
  639. r21print_as_fatal_error((T21*)(oBC12eh));
  640. }
  641. /*FI]*/
  642. }
  643. /*No:CALL_INFIX_NEQ.arg_count*/
  644.  
  645.  
  646. void r128with(T128* C,T0* a1,T0* a2,T0* a3){
  647. C->_target=a1;
  648. C->_feature_name=a2;
  649. C->_arguments=a3;
  650. }
  651.  
  652.  
  653. T0* r128type_boolean(void){
  654. if(fBC12type_boolean==0){
  655. fBC12type_boolean=1;
  656. {T264*n=malloc(sizeof(*n));
  657. *n=M264;
  658. r264make(n,NULL);
  659. oBC12type_boolean=(T0*)n;
  660. }
  661. }
  662. return oBC12type_boolean;}
  663. /*No:CALL_INFIX_NEQ.nb_errors*/
  664.  
  665.  
  666. void r128cmp_basic_ref(T128* C,T6 a1){
  667. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  668. T3 b1='\50';
  669. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  670. }/*]*/
  671. /*]*/
  672. X56compile_to_c((C)->_target/*4*/);
  673. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  674. T3 b1='\51';
  675. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  676. }/*]*/
  677. /*]*/
  678. /*[IF*/
  679. if(a1){
  680. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_250));
  681. /*]*/
  682. }
  683. else{
  684. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_194a));
  685. /*]*/
  686. }
  687. /*FI]*/
  688. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  689. T3 b1='\50';
  690. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  691. }/*]*/
  692. /*]*/
  693. /*[IRF3.5put_string*/r45put_string(((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/)),((T0*)ms13_5432));
  694. /*]*/
  695. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  696. T3 b1='\50';
  697. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  698. }/*]*/
  699. /*]*/
  700. X56compile_to_c(r128arg1(C));
  701. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  702. T3 b1='\51';
  703. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  704. }/*]*/
  705. /*]*/
  706. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  707. T3 b1='\51';
  708. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  709. }/*]*/
  710. /*]*/
  711. }
  712. /*No:CALL_INFIX_NEQ.can_be_dropped*/
  713.  
  714.  
  715. T6 r128is_manifest_array(T0* a1){
  716. T6 R=0;
  717. T0* _ma=NULL;
  718. _ma=a1;
  719. if(NULL!=(_ma))switch(((T0*)_ma)->id) {
  720. case 110: 
  721. break;
  722. default:
  723. _ma=NULL;
  724. };R=(_ma)!=((void*)(NULL));
  725. return R;
  726. }
  727.  
  728.  
  729. void r128c_declare_for_old(T128* C){
  730. X56c_declare_for_old((C)->_target/*4*/);
  731. /*[IF*/
  732. {/*AT*/X149c_declare_for_old((C)->_arguments/*8*/);
  733. }
  734. /*FI]*/
  735. }
  736. /*No:CALL_INFIX_NEQ.fz_c_neq*/
  737.  
  738.  
  739. T0* r128arg1(T128* C){
  740. T0* R=NULL;
  741. R=/*X149first*/((T0*)/*(IRF4.3first*/((T149*)((C)->_arguments/*8*/))->_first_one/*4*//*)*/);
  742. return R;
  743. }
  744.  
  745.  
  746. void r128mapping_c_arg(T128* C,T0* a1){
  747. T0* _actual_type=NULL;
  748. _actual_type=X54run_type(/*(IRF4.8result_type*/r128type_boolean()/*)*/);
  749. /*[IF*/
  750. if(X54is_reference(_actual_type)){
  751. /*[IF*/
  752. if(X54is_reference(a1)){
  753. r128compile_to_c(C);
  754. }
  755. else{
  756. X54to_expanded(_actual_type);
  757. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  758. T3 b1='\50';
  759. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  760. }/*]*/
  761. /*]*/
  762. r128compile_to_c(C);
  763. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  764. T3 b1='\51';
  765. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  766. }/*]*/
  767. /*]*/
  768. }
  769. /*FI]*/
  770. }
  771. else{
  772. /*[IF*/
  773. if(X54is_reference(a1)){
  774. X54to_reference(_actual_type);
  775. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  776. T3 b1='\50';
  777. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  778. }/*]*/
  779. /*]*/
  780. r128compile_to_c(C);
  781. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  782. T3 b1='\51';
  783. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  784. }/*]*/
  785. /*]*/
  786. }
  787. else{
  788. /*[IF*/
  789. if(X54need_c_struct(a1)){
  790. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  791. T3 b1='\46';
  792. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  793. }/*]*/
  794. /*]*/
  795. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  796. T3 b1='\50';
  797. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  798. }/*]*/
  799. /*]*/
  800. r128compile_to_c(C);
  801. /*[IRF3.5put_character*//*[IRF3.6put_character*/{T45* C1=((T45*)(((T25*)(oBC12cpp))->_current_out/*56*/));
  802. T3 b1='\51';
  803. putc(b1,((FILE*)((C1)->_output_stream/*4*/)));
  804. }/*]*/
  805. /*]*/
  806. }
  807. else{
  808. r128compile_to_c(C);
  809. }
  810. /*FI]*/
  811. }
  812. /*FI]*/
  813. }
  814. /*FI]*/
  815. }
  816. /*No:CALL_INFIX_NEQ.is_void*/
  817. /*No:CALL_INFIX_NEQ.fz_cast_float*/
  818. /*No:PROCEDURE.rescue_compound*/
  819. /*No:PROCEDURE.use_current_state*/
  820.  
  821.  
  822. T0* r302run_require(T0* a1){
  823. T0* R=NULL;
  824. T0* _ct=NULL;
  825. T0* _ar=NULL;
  826. T0* _hc=NULL;
  827. T0* _er=NULL;
  828. T0* _r=NULL;
  829. T2 _i=0;
  830. r358clear((T358*)(oBC93require_collector));
  831. _ct=/*X51current_type*/((T0*)(((T324*)a1))->_current_type/*4*/);
  832. r63collect_for((T63*)(X54base_class(_ct)),1,/*X51name*/((T0*)(((T324*)a1))->_name/*16*/));
  833. /*[IF*/
  834. if(!(r358empty((T358*)(oBC93require_collector)))){
  835. _i=1;
  836. while (!((_i)>(((T358*)(oBC93require_collector))->_upper/*8*/))) {
  837. _er=r358item((T358*)(oBC93require_collector),_i);
  838. _hc=(((T286*)_er))->_header_comment/*4*/;
  839. /*[IF*/
  840. if(!(/*(IRF4.7empty*/((((T286*)_er))->_list/*8*/)==(NULL)/*)*/)){
  841. _r=r302runnable((((T286*)_er))->_list/*8*/,_ct,a1);
  842. /*[IF*/
  843. if((_r)!=((void*)(NULL))){
  844. {T286*n=malloc(sizeof(*n));
  845. *n=M286;
  846. r286make_runnable(n,_r,_ct,a1);
  847. _er=(T0*)n;
  848. }
  849. /*[IRF3.3set_header_comment*/((((T286*)(((T286*)_er))))->_header_comment)=(_hc);
  850. /*]*/
  851. /*[IF*/
  852. if((_ar)==((void*)(NULL))){
  853. _ar=se_ma358(1,
  854. _er);
  855. }
  856. else{
  857. r358add_last(((T358*)_ar),_er);
  858. }
  859. /*FI]*/
  860. }
  861. /*FI]*/
  862. }
  863. /*FI]*/
  864. _i=(_i)+(1);
  865. }
  866. /*[IF*/
  867. if((_ar)!=((void*)(NULL))){
  868. {T357*n=malloc(sizeof(*n));
  869. *n=M357;
  870. /*[IRF3.3make*/((((T357*)(n)))->_list)=(_ar);
  871. /*]*/
  872. R=(T0*)n;
  873. }
  874. }
  875. /*FI]*/
  876. }
  877. /*FI]*/
  878. return R;
  879. }
  880. /*No:PROCEDURE.base_class*/
  881. /*No:PROCEDURE.set_rescue_compound*/
  882. /*No:PROCEDURE.base_class_name*/
  883.  
  884.  
  885. T0* r302start_position(T302* C){
  886. T0* R=NULL;
  887. R=X83start_position(/*(IRF4.6first_name*/r85item(((T85*)((C)->_names/*8*/)),1)/*)*/);
  888. return R;
  889. }
  890.  
  891.  
  892. T6 r302is_merge_with(T302* C,T0* a1,T0* a2){
  893. T6 R=0;
  894. R=1;
  895. /*[IF*/
  896. if((/*(IRF4.1result_type*/NULL/*)*/)!=((void*)(X93result_type(a1)))){
  897. /*[IF*/
  898. {/*AT*/R=0;
  899. }
  900. /*FI]*/
  901. }
  902. /*FI]*/
  903. /*[IF*/
  904. if(((C)->_arguments/*24*/)!=((void*)(X93arguments(a1)))){
  905. /*[IF*/
  906. if((((C)->_arguments/*24*/)==((void*)(NULL)))||((X93arguments(a1))==((void*)(NULL)))){
  907. R=0;
  908. }
  909.  else if((/*(IRF4.6count*/(((T191*)(((T187*)((C)->_arguments/*24*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T191*)(((T187*)(X93arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
  910. R=0;
  911. }
  912. /*FI]*/
  913. }
  914. /*FI]*/
  915. /*[IF*/
  916. if(R){
  917. /*[IF*/
  918. /*AF*//*AE*/
  919. /*FI]*/
  920. /*[IF*/
  921. if((R)&&(((C)->_arguments/*24*/)!=((void*)(NULL)))){
  922. R=r187is_a_in((T187*)((C)->_arguments/*24*/),X93arguments(a1),a2);
  923. }
  924. /*FI]*/
  925. /*[IF*/
  926. if(!(R)){
  927. R=1;
  928. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  929. /*]*/
  930. /*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
  931. /*]*/
  932. /*]*/
  933. /*[IF*/
  934. /*AF*//*AE*/
  935. /*FI]*/
  936. /*[IF*/
  937. if((R)&&(((C)->_arguments/*24*/)!=((void*)(NULL)))){
  938. R=r187is_a_in((T187*)(X93arguments(a1)),(C)->_arguments/*24*/,a2);
  939. }
  940. /*FI]*/
  941. }
  942. /*FI]*/
  943. }
  944. /*FI]*/
  945. /*[IF*/
  946. if(R){
  947. r302merge_header_comments(C,a1);
  948. }
  949. /*FI]*/
  950. return R;
  951. }
  952.  
  953.  
  954. T0* r302runnable(T0* a1,T0* a2,T0* a3){
  955. T0* R=NULL;
  956. T0* _a=NULL;
  957. T2 _i=0;
  958. /*[IF*/
  959. if(!(r106empty(((T106*)a1)))){
  960. R=r106twin(((T106*)a1));
  961. _i=(((T106*)R))->_upper/*8*/;
  962. while (!((_i)==(0))) {
  963. r22push((T22*)(oBC12small_eiffel),a3);
  964. _a=r103to_runnable((T103*)(r106item(((T106*)R),_i)),a2);
  965. /*[IF*/
  966. if((_a)==((void*)(NULL))){
  967. r302error(r103start_position((T103*)(r106item(((T106*)R),_i))),((T0*)ms13_14266));
  968. }
  969. else{
  970. /*[IRF3.6put*/{T106* C1=((T106*)R);
  971. T0* b1=_a;
  972. T2 b2=_i;
  973. ((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
  974. }/*]*/
  975. }
  976. /*FI]*/
  977. r22pop((T22*)(oBC12small_eiffel));
  978. _i=(_i)-(1);
  979. }
  980. }
  981. /*FI]*/
  982. return R;
  983. }
  984. /*No:PROCEDURE.not_computed*/
  985. /*No:PROCEDURE.first_name*/
  986. /*No:PROCEDURE.em1*/
  987. /*No:PROCEDURE.header_comment*/
  988. /*No:PROCEDURE.names*/
  989.  
  990.  
  991. void r302mapping_c_name_in(T302* C,T0* a1){
  992. r63mapping_c_in((T63*)((C)->_base_class/*4*/),a1);
  993. r7append(((T7*)a1),X83to_key(/*(IRF4.6first_name*/r85item(((T85*)((C)->_names/*8*/)),1)/*)*/));
  994. }
  995. /*No:PROCEDURE.fz_03*/
  996. /*No:PROCEDURE.result_type*/
  997. /*No:PROCEDURE.code_require*/
  998. /*No:PROCEDURE.make_e_feature*/
  999.  
  1000.  
  1001. void r302add_into(T302* C,T0* a1){
  1002. T0* _fn=NULL;
  1003. T2 _i=0;
  1004. C->_base_class=r70base_class((T70*)(X83start_position(r85item((T85*)((C)->_names/*8*/),1))));
  1005. _i=1;
  1006. while (!((_i)>(r85count((T85*)((C)->_names/*8*/))))) {
  1007. _fn=r85item((T85*)((C)->_names/*8*/),_i);
  1008. /*[IF*/
  1009. if(r92has(((T92*)a1),X83to_key(_fn))){
  1010. _fn=/*X93first_name*/((T0*)/*(IRF4.6first_name*/r85item(((T85*)(((T199*)(r92at(((T92*)a1),X83to_key(_fn))))->_names/*8*/)),1)/*)*/);
  1011. r21add_position(X83start_position(_fn));
  1012. r21add_position(X83start_position(r85item((T85*)((C)->_names/*8*/),_i)));
  1013. r21error((T21*)(oBC12eh),((T0*)ms93_41905));
  1014. /*[IRF3.6append*/{T0* b1=X83to_string(_fn);
  1015. r7append((T7*)(oBC21explanation),b1);
  1016. }/*]*/
  1017. r21error((T21*)(oBC12eh),((T0*)ms13_47));
  1018. }
  1019. else{
  1020. r92put(((T92*)a1),(T0*)C,X83to_key(_fn));
  1021. }
  1022. /*FI]*/
  1023. _i=(_i)+(1);
  1024. }
  1025. }
  1026.  
  1027.  
  1028. T6 r302can_hide(T302* C,T0* a1,T0* a2){
  1029. T6 R=0;
  1030. /*[IF*/
  1031. if((/*(IRF4.1result_type*/NULL/*)*/)!=((void*)(X93result_type(a1)))){
  1032. /*[IF*/
  1033. {/*AT*/r21add_position(X93start_position(a1));
  1034. r302error(r302start_position(C),((T0*)ms93_64647));
  1035. }
  1036. /*FI]*/
  1037. }
  1038. /*FI]*/
  1039. /*[IF*/
  1040. if(((C)->_arguments/*24*/)!=((void*)(X93arguments(a1)))){
  1041. /*[IF*/
  1042. if((((C)->_arguments/*24*/)==((void*)(NULL)))||((X93arguments(a1))==((void*)(NULL)))){
  1043. r21add_position(X93start_position(a1));
  1044. r302error(r302start_position(C),((T0*)ms93_83182));
  1045. }
  1046.  else if((/*(IRF4.6count*/(((T191*)(((T187*)((C)->_arguments/*24*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T191*)(((T187*)(X93arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
  1047. r21add_position(X93start_position(a1));
  1048. r302error(r302start_position(C),((T0*)ms93_67155));
  1049. }
  1050. /*FI]*/
  1051. }
  1052. /*FI]*/
  1053. /*[IF*/
  1054. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  1055. /*[IF*/
  1056. /*AF*//*AE*/
  1057. /*FI]*/
  1058. }
  1059. /*FI]*/
  1060. /*[IF*/
  1061. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  1062. /*[IF*/
  1063. if(((C)->_arguments/*24*/)!=((void*)(NULL))){
  1064. /*[IF*/
  1065. if(!(r187is_a_in((T187*)((C)->_arguments/*24*/),X93arguments(a1),a2))){
  1066. r21add_position(X93start_position(a1));
  1067. r21add_position(r302start_position(C));
  1068. /*[IRF3.6append*/{T0* b1=((T0*)ms93_54285);
  1069. r7append((T7*)(oBC21explanation),b1);
  1070. }/*]*/
  1071. /*[IRF3.6append*/{T0* b1=X54run_time_mark((((T24*)a2))->_current_type/*0*/);
  1072. r7append((T7*)(oBC21explanation),b1);
  1073. }/*]*/
  1074. r21error((T21*)(oBC12eh),((T0*)ms13_47));
  1075. }
  1076. /*FI]*/
  1077. }
  1078. /*FI]*/
  1079. }
  1080. /*FI]*/
  1081. R=(/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0);
  1082. /*[IF*/
  1083. if(R){
  1084. r302merge_header_comments(C,a1);
  1085. }
  1086. /*FI]*/
  1087. return R;
  1088. }
  1089. /*No:PROCEDURE.ensure_assertion*/
  1090.  
  1091.  
  1092. T0* r302run_ensure(T0* a1){
  1093. T0* R=NULL;
  1094. T0* _ct=NULL;
  1095. T0* _r=NULL;
  1096. r106clear((T106*)(oBC93assertion_collector));
  1097. /*[IRF3.3clear*/{T0* _default_item=NULL;
  1098. ((((T371*)((T371*)(oBC93header_comment_memory))))->_item)=(_default_item);
  1099. }/*]*/
  1100. _ct=/*X51current_type*/((T0*)(((T324*)a1))->_current_type/*4*/);
  1101. r63collect_for((T63*)(X54base_class(_ct)),2,/*X51name*/((T0*)(((T324*)a1))->_name/*16*/));
  1102. _r=r302runnable(oBC93assertion_collector,_ct,a1);
  1103. /*[IF*/
  1104. if((_r)!=((void*)(NULL))){
  1105. {T215*n=malloc(sizeof(*n));
  1106. *n=M215;
  1107. r215make_runnable(n,_r,_ct,a1);
  1108. R=(T0*)n;
  1109. }
  1110. /*[IRF3.3set_header_comment*/((((T215*)(((T215*)R))))->_header_comment)=(((T371*)(oBC93header_comment_memory))->_item/*0*/);
  1111. /*]*/
  1112. /*[IRF3.3clear*/{T0* _default_item=NULL;
  1113. ((((T371*)((T371*)(oBC93header_comment_memory))))->_item)=(_default_item);
  1114. }/*]*/
  1115. }
  1116. /*FI]*/
  1117. return R;
  1118. }
  1119. /*No:PROCEDURE.us_array*/
  1120.  
  1121.  
  1122. void r302check_obsolete(T302* C){
  1123. /*[IF*/
  1124. if(!(((T22*)(oBC12small_eiffel))->_short_flag/*8*/)){
  1125. /*[IF*/
  1126. if(((C)->_obsolete_mark/*28*/)!=((void*)(NULL))){
  1127. /*[IRF3.6append*/{T0* b1=((T0*)ms214_39396);
  1128. r7append((T7*)(oBC21explanation),b1);
  1129. }/*]*/
  1130. /*[IRF3.6append*/{T0* b1=((T171*)((C)->_obsolete_mark/*28*/))->_to_string/*8*/;
  1131. r7append((T7*)(oBC21explanation),b1);
  1132. }/*]*/
  1133. r302warning(r302start_position(C),((T0*)ms13_166));
  1134. }
  1135. /*FI]*/
  1136. }
  1137. /*FI]*/
  1138. }
  1139.  
  1140.  
  1141. T0* r302try_to_undefine(T302* C,T0* a1,T0* a2){
  1142. T0* R=NULL;
  1143. T0* _fn2=NULL;
  1144. r21add_position(X83start_position(a1));
  1145. _fn2=r85feature_name((T85*)((C)->_names/*8*/),X83to_key(a1));
  1146. /*[IF*/
  1147. if((_fn2)!=((void*)(NULL))){
  1148. X83undefine_in(_fn2,a2);
  1149. }
  1150. /*FI]*/
  1151. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  1152. /*]*/
  1153. /*[IRF3.3clear*/((((T69*)((T69*)(oBC21positions))))->_upper)=(-(1));
  1154. /*]*/
  1155. /*]*/
  1156. R=r302try_to_undefine_aux(C,a1,a2);
  1157. /*[IF*/
  1158. if((R)!=((void*)(NULL))){
  1159. /*X284set_clients*//*[IRF3.3set_clients*/((((T287*)(((T287*)R))))->_clients)=((C)->_clients/*20*/);
  1160. /*]*/
  1161. r302merge_header_comments(C,R);
  1162. }
  1163. else{
  1164. r63fatal_undefine(((T63*)a2),a1);
  1165. }
  1166. /*FI]*/
  1167. return R;
  1168. }
  1169. /*No:PROCEDURE.is_deferred*/
  1170. /*No:PROCEDURE.set_clients*/
  1171. /*No:PROCEDURE.nb_errors*/
  1172. /*No:PROCEDURE.code_ensure*/
  1173.  
  1174.  
  1175. void r302make_routine(T302* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  1176. /*[IRF3.3make_e_feature*/((((T302*)(C)))->_names)=(a1);
  1177. /*]*/
  1178. C->_header_comment=a4;
  1179. C->_arguments=a2;
  1180. C->_obsolete_mark=a3;
  1181. C->_require_assertion=a5;
  1182. }
  1183.  
  1184.  
  1185. T0* r302to_run_feature(T302* C,T0* a1,T0* a2){
  1186. T0* R=NULL;
  1187. r302check_obsolete(C);
  1188. {T324*n=malloc(sizeof(*n));
  1189. *n=M324;
  1190. r324make(n,a1,a2,(T0*)C);
  1191. R=(T0*)n;
  1192. }
  1193. return R;
  1194. }
  1195.  
  1196.  
  1197. void r302merge_header_comments(T302* C,T0* a1){
  1198. /*[IF*/
  1199. if(((T22*)(oBC12small_eiffel))->_short_flag/*8*/){
  1200. /*[IF*/
  1201. if(((C)->_header_comment/*12*/)==((void*)(NULL))){
  1202. C->_header_comment=/*X93header_comment*/((T0*)(((T199*)a1))->_header_comment/*12*/);
  1203. }
  1204.  else if((/*X93header_comment*/((T0*)(((T199*)a1))->_header_comment/*12*/))==((void*)(NULL))){
  1205. X93set_header_comment(a1,(C)->_header_comment/*12*/);
  1206. }
  1207. /*FI]*/
  1208. }
  1209. /*FI]*/
  1210. }
  1211. /*No:PROCEDURE.arguments*/
  1212. /*No:PROCEDURE.us_fixed_array*/
  1213. /*No:PROCEDURE.us_put*/
  1214. /*No:PROCEDURE.require_assertion*/
  1215.  
  1216.  
  1217. void r302warning(T0* a1,T0* a2){
  1218. r21add_position(a1);
  1219. r21warning((T21*)(oBC12eh),a2);
  1220. }
  1221.  
  1222.  
  1223. T0* r302try_to_undefine_aux(T302* C,T0* a1,T0* a2){
  1224. T0* R=NULL;
  1225. {T285*n=malloc(sizeof(*n));
  1226. *n=M285;
  1227. r285from_effective(n,a1,(C)->_arguments/*24*/,(C)->_require_assertion/*32*/,(C)->_ensure_assertion/*36*/,a2);
  1228. R=(T0*)n;
  1229. }
  1230. return R;
  1231. }
  1232. /*No:PROCEDURE.set_ensure_assertion*/
  1233.  
  1234.  
  1235. T6 r302stupid_switch_for_collection(T0* a1,T0* a2){
  1236. T6 R=0;
  1237. T0* _rf=NULL;
  1238. T2 _i=0;
  1239. T0* _bcn=NULL;
  1240. T0* _f=NULL;
  1241. _f=X51base_feature(a1);
  1242. /*[IF*/
  1243. if((((T0*)ms14_1053))==((void*)(X83to_string(/*X93first_name*/((T0*)/*(IRF4.6first_name*/r85item(((T85*)((((T199*)_f))->_names/*8*/)),1)/*)*/))))){
  1244. _bcn=((T64*)(((T63*)(/*X93base_class*/((T0*)(((T199*)_f))->_base_class/*4*/)))->_name/*24*/))->_to_string/*0*/;
  1245. /*[IF*/
  1246. if(((((T0*)ms14_1990))==((void*)(_bcn)))||((((T0*)ms14_14982))==((void*)(_bcn)))){
  1247. _i=(((T328*)a2))->_upper/*8*/;
  1248. R=1;
  1249. while (!((!(R))||((_i)==(0)))) {
  1250. _rf=r24dynamic((T24*)(r328item(((T328*)a2),_i)),a1);
  1251. /*[IF*/
  1252. if(X54is_expanded(r187type((T187*)(X51arguments(_rf)),1))){
  1253. R=0;
  1254. }
  1255. /*FI]*/
  1256. _i=(_i)-(1);
  1257. }
  1258. }
  1259. /*FI]*/
  1260. }
  1261. /*FI]*/
  1262. return R;
  1263. }
  1264. /*No:PROCEDURE.fz_bad_assertion*/
  1265. /*No:PROCEDURE.fz_dot*/
  1266.  
  1267.  
  1268. T6 r302stupid_switch(T0* a1,T0* a2){
  1269. T6 R=0;
  1270. T0* _sfn=NULL;
  1271. T0* _rf3=NULL;
  1272. _rf3=r24dynamic((T24*)(r328first(((T328*)a2))),a1);
  1273. if(NULL!=(_rf3))switch(((T0*)_rf3)->id) {
  1274. case 324: 
  1275. break;
  1276. default:
  1277. _rf3=NULL;
  1278. };/*[IF*/
  1279. if(r324is_empty_or_null_body(((T324*)_rf3))){
  1280. R=1;
  1281. }
  1282. else{
  1283. _sfn=r324is_attribute_writer(((T324*)_rf3));
  1284. /*[IF*/
  1285. if((_sfn)!=((void*)(NULL))){
  1286. R=r25stupid_switch(r24get_feature((T24*)(X51run_class(a1)),_sfn));
  1287. }
  1288. else{
  1289. R=r302stupid_switch_for_collection(a1,a2);
  1290. }
  1291. /*FI]*/
  1292. }
  1293. /*FI]*/
  1294. return R;
  1295. }
  1296.  
  1297.  
  1298. void r302error(T0* a1,T0* a2){
  1299. r21add_position(a1);
  1300. r21error((T21*)(oBC12eh),a2);
  1301. }
  1302.  
  1303.  
  1304. void r302make(T302* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
  1305. r302make_routine(C,a1,a2,a3,a4,a5);
  1306. C->_local_vars=a6;
  1307. C->_routine_body=a7;
  1308. C->_use_current_state=25;
  1309. }
  1310. /*No:PROCEDURE.routine_body*/
  1311. /*No:PROCEDURE.end_comment*/
  1312.  
  1313.  
  1314. void r302collect_for(T302* C,T2 a1){
  1315. T0* _er=NULL;
  1316. /*[IF*/
  1317. if((a1)==(1)){
  1318. _er=(C)->_require_assertion/*32*/;
  1319. /*[IF*/
  1320. if((_er)!=((void*)(NULL))){
  1321. /*[IF*/
  1322. if(!(r358fast_has((T358*)(oBC93require_collector),_er))){
  1323. r358add_last((T358*)(oBC93require_collector),_er);
  1324. }
  1325. /*FI]*/
  1326. }
  1327. /*FI]*/
  1328. }
  1329. else{
  1330. /*[IF*/
  1331. if(((C)->_ensure_assertion/*36*/)!=((void*)(NULL))){
  1332. /*[IRF3.3set_item*/((((T371*)((T371*)(oBC93header_comment_memory))))->_item)=(((T215*)((C)->_ensure_assertion/*36*/))->_header_comment/*4*/);
  1333. /*]*/
  1334. r215add_into((T215*)((C)->_ensure_assertion/*36*/),oBC93assertion_collector);
  1335. }
  1336. /*FI]*/
  1337. }
  1338. /*FI]*/
  1339. }
  1340. /*No:PROCEDURE.local_vars*/
  1341.  
  1342.  
  1343. void r302set_header_comment(T302* C,T0* a1){
  1344. /*[IF*/
  1345. if(((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r39count(((T39*)((((T82*)a1))->_list/*4*/)))/*)*/)>(1))){
  1346. C->_end_comment=a1;
  1347. }
  1348. /*FI]*/
  1349. }
  1350. /*No:PROCEDURE.clients*/
  1351. /*No:PROCEDURE.obsolete_mark*/
  1352.  
  1353.